# 二开推荐阅读[如何提高项目构建效率](https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/scene/build/speed.html)
# 选择构建用基础镜像（选择原则：在包含所有用到的依赖前提下尽可能体积小）。如需更换，请到[dockerhub官方仓库](https://hub.docker.com/_/php?tab=tags)自行选择后替换。
FROM xinyu126/nginx-php82:1.1.1

# 使用 HTTPS 协议访问容器云调用证书安装
RUN apk add ca-certificates

# 设定工作目录
WORKDIR /app

# 将当前目录下所有文件拷贝到/app （.dockerignore中文件除外）
COPY . /app

# 替换nginx、fpm、php配置
RUN cp /app/conf/nginx.conf /etc/nginx/conf.d/default.conf \
    && cp /app/conf/fpm.conf /usr/local/etc/php-fpm.d/www.conf \
    #    && cp /app/conf/php.ini /etc/php8/php.ini \
    && mkdir -p /run/nginx \
    && chmod -R 777 /app/runtime 
#    && mv /usr/sbin/php-fpm8 /usr/sbin/php-fpm
# 创建目录
RUN mkdir -p /app/public/uploads /app/public/admin /app/public/mobile /app/config /app/public/sign
#目录权限
RUN cp /app/.env.tencent /app/.env \
    && touch /app/config/install.lock \
    && chmod 777 /app/public/uploads \
    && chmod 777 /app/.env \
    && chmod 777 /app/public/admin \
    && chmod 777 /app/public/mobile \    
    && chmod 777 /app/config  \ 
    && chmod 777 /app/public/sign   

# 定时任务
RUN crontab -l >> /tmp/crontab.bak \
    && echo "*/1    *   *   *   *   php /app/think crontab" >> /tmp/crontab.bak \
    && crontab /tmp/crontab.bak
# 暴露端口
# 此处端口必须与「服务设置」-「流水线」以及「手动上传代码包」部署时填写的端口一致，否则会部署失败。
EXPOSE 80
ENV COMPOSER_ALLOW_SUPERUSER 1
RUN composer install --no-dev
# 执行启动命令.
# 写多行独立的CMD命令是错误写法！只有最后一行CMD命令会被执行，之前的都会被忽略，导致业务报错。
# 请参考[Docker官方文档之CMD命令](https://docs.docker.com/engine/reference/builder/#cmd)
CMD ["sh", "run.sh"]